Carbon


OpenResFile

Header: Resources.h Carbon status: Unsupported

Opens a resource fork, when the FSpOpenResFile function is not available.

SInt16 OpenResFile (
    ConstStr255Param fileName
);
fileName

The name of the file whose resource fork is to be opened. The function opens the resource fork of the file with this name in the application’s default directory—that is, the directory in which the application is located. It also makes this file the current resource file.

A file reference number for the file. You can use this file reference number to refer to the file in other Resource Manager functions. If the file’s resource fork is already open, the function returns the file reference number but does not make that file the current resource file.

If the function fails to open the specified file’s resource fork (for instance, because there’s no file with the given name), it returns –1 as the file reference number. Use the ResError function to determine what kind of error occurred.

DISCUSSION

If it finds the specified file in your application’s default directory, this function reads the file’s resource map into memory. It also reads into memory every resource in the resource fork whose resPreload attribute is set.

The HOpenResFile function allows you to specify both a directory ID and a volume reference number, and is therefore preferred if FSpOpenResFile is not available. The OpenRFPerm and OpenResFile functions are earlier versions of HOpenResFile that are still supported but are more restricted in their capabilities.

Unlike the OpenRFPerm function, OpenResFile does not let you specify the read/write permission of the resource fork the first time it is opened. The OpenResFile function is an earlier version of the OpenRFPerm function.

You don’t have to call this function to open the System file’s resource fork or an application file’s resource fork. These resource forks are opened automatically when the system and the application start up, respectively. To get the file reference number for your application, call the CurResFile function after the application starts up and before you open the resource forks for any other files.

The function checks that the information in the resource map is internally consistent. If it isn’t, ResError returns the result code mapReadErr.

To open a resource fork just for block-level operations, such as copying files without reading the resource map into memory, use the File Manager function OpenRF.

If you want to open the resource fork for another application (or any resource fork other than your application’s that includes 'CODE' resources), you must bracket your calls to OpenResFile with calls to the SetResLoad function with the load parameter set to FALSE and then to TRUE. You must also avoid making intersegment calls while the other application’s resource fork is open.

SPECIAL CONSIDERATIONS

This function may move or purge memory blocks in the application heap. Your application should not call this function at interrupt time.

AVAILABILITY

Not supported in Carbon. Not available in Carbon.

CARBON NOTES

Carbon does not support MFS calls. Use HFS+ calls instead.


© 2000 Apple Computer, Inc. — (Last Updated 5/8/2000)